/**
 * f(a,b,c) ->  f(a)(b)(c)
 *  多个形参的函数转换为只有一个形参的函数,调用多次达到相同效果
 */
function sum(a,b){
    return a + b
}
/**
 * 柯里化转换
 * @param {*} s 
 * @returns 
 */
function currySum(s){
    return function(a){
        return function(b){
            return s(a,b)
        }
    }
}

const f = currySum(sum) // f为转换后的柯里化函数
const s = f(10)(20) // f(10)(20) <=>  f1 = f(10), f1(20)
console.log(s)
